home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
yerk
/
mps231ss.hqx
/
Mops source
/
Module source
/
printMod.txt
< prev
next >
Wrap
Text File
|
1993-02-01
|
2KB
|
86 lines
\ print -- Printer support
\ 10/10/84 rw Version 1
\ 11/22/84 cbd Added vectors for system printing
\ 12/19/84 ssg Moved selectors; added formfeed;
\ Added echovec stuff to +print, -print.
\ 12/31/84 ssg Converted to module.
\ 2/13/85 cbd subclass of PBDrvr instead of File
\ 12/19/85 cdn Renamed ff to np (new page), to avoid conflict with $ ff
\ 6/27/86 cdn Improved error message for Reset failure
\ July 90 mrh Mops version.
Decimal
// drvr
scon PRNAME ".Print"
:class PRINTFCB super{ PBdrvr }
:m PINIT: prname name: self -3 put: IORefNum ;m
:m RESET:
7 put: csCode
0 put: IOBuffer
1 put: csp1 0 put: csp2
addr: header fcall PBControl
abort" Reset Failed; Printer Driver may be missing from disk" ;m
:m FF:
7 put: csCode
0 put: IOBuffer
2 put: csp1 0 put: csp2
addr: header fcall PBControl
abort" FF failed" ;m
:m LF:
7 put: csCode
0 put: IOBuffer
3 put: csp1 0 put: csp2
addr: header fcall PBControl
abort" LF failed" ;m
:m OPEN:
pinit: self open: super reset: self
abort" Can't open printer" ;m
:m PRINT: \ ( addr len -- )
5 put: csCode
put: IOBuffer addr: header 28 + !
addr: header fcall PBControl
abort" Print failed" ;m
:m PEMIT: \ ( char -- )
pad c! pad 1 print: self ;m
:m CLOSE:
ff: self close: super
abort" Can't close printer" ;m
;class
printFcb PRINTER
: +PRINT \ Enables simultaneous printing of Neon screen text
\ Note: this definition must precede PEMIT etc, so we
\ can tick the exported versions of these words. Vital so
\ that the module gets called properly from the vectors!!
open: printer ['] pemit -> pemitvec ['] echo -> echovec
['] ptype -> ptypevec ['] pcr -> pcrvec ;
: -PRINT
0 -> pemitvec 0 -> echovec 0 -> ptypevec 0 -> pcrvec
drop: printMod ;
: PINIT open: printer ;
: PEMIT pemit: printer ;
: PTYPE print: printer ;
: PCR lf: printer $ 0a ( ASCII linefeed ) pemit ;
: NP ff: printer ;
: ECHO \ ( c -- ) Echoes to printer AND screen.
dup emitvec pemitvec ;